package com.gxa.service;

import com.gxa.common.Q;
import com.gxa.common.R;
import com.gxa.pojo.*;

/**
 * Created with IntelliJ IDEA.
 * User: zdk
 * Date: 2021/12/03 16:43
 * Description:
 * Version: V1.0
 */
public interface LsFinanceService {

    /**
     * 财务管理信息查询
     * @param currentPage 页码
     * @param currentLimit 每页显示条数
     * @return
     */
    Q queryFinanceList(Integer currentPage, Integer currentLimit);

    /**
     * 今日收支列表查询
     * @param currentPage  页数
     * @param currentLimit 显示行数
     * @return
     */
    Q queryTodayFinanceList(Integer currentPage, Integer currentLimit);

    /**
     * 本周收支列表查询
     * @param currentPage  页数
     * @param currentLimit 显示行数
     * @return
     */
    Q queryWeekFinanceList(Integer currentPage, Integer currentLimit);

    /**
     * 本月收支列表查询
     * @param currentPage  页数
     * @param currentLimit 显示行数
     * @return
     */
    Q queryMonthFinanceList(Integer currentPage, Integer currentLimit);

    /**
     * 高级搜索
     * @param queryExportFinance 财务信息
     * @return Q
     */
    Q queryExportFinanceList(QueryExportFinance queryExportFinance);
    /**
     * 收支新增页面下拉框选项查询
     * @param rae_type_no 收支类型编号
     * @return 下拉框选项
     */
    R queryAddFinance(Integer rae_type_no);

    /**
     * 新增财务管理信息接口
     * @param finance 财务管理信息
     * @return
     */
    R addFinance(Finance finance);

    /**
     * 财务合同中间表的建立接口
     * @param contract 合同管理信息
     */
    void addFinanceContract(FContract contract);

    /**
     * 财务采购中间表的建立接口
     * @param purchase 采购管理信息
     */
    void addFinancePurchase(FPurchase purchase);

    /**
     * 财务订单中间表的建立接口
     * @param orders 订单管理信息
     */
    void addFinanceOrders(FOrders orders);

    /**
     *新增订单信息
     * @param orders 订单信息
     */
    R addOrders(FOrders orders);

    /**
     * 新增合同信息
     * @param contract 合同信息
     * @return
     */
    R addContract(FContract contract);
    /**
     * 新增采购信息
     * @param purchase 采购信息
     * @return
     */
    R addPurchase(FPurchase purchase);

    /**
     * 修改状态接口
     * @param finance_no    修改主键
     * @param finance_state 修改状态
     * @return
     */
    R UpdateStateFinance(Integer finance_no, Integer finance_state);

    /**
     * 修改财务信息接口
     * @param finance 修改财务信息
     * @return
     */
    R UpdateFinance(Finance finance);

    /**
     * 普通搜索功能接口
     * @param currentPage  页码
     * @param currentLimit 显示条数
     * @param search 搜索条件
     * @return
     */
    Q querySearchFinance(Integer currentPage, Integer currentLimit, String search);

    /**
     * 删除财务信息接口
     * @param finance_No 财务信息编码
     * @return
     */
    R updateDeleteFinance(Integer finance_No);

    /**
     * 根据客户编号删除财务信息接口
     * @param finance_customer 客户编号
     * @return
     */
    R updateDeleteCustomerFinance(Integer finance_customer);
}
